package com.shujia;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Demo02WordCountJava {
    public static void main(String[] args) throws IOException {
        // 1、读取文件
        BufferedReader br = new BufferedReader(new FileReader("scala/data/words.txt"));

        String line;
        // 构建HashMap保存每个单词的数量，以单词作为Key，数量作为Value
        HashMap<String, Integer> wordCntMap = new HashMap<>();

        // 2、通过循环读取每一条数据
        while ((line = br.readLine()) != null) {
            // 3、对每一行数据进行切分 取出每一个单词
            String[] words = line.split(",");
            for (String word : words) {
                // 4、对每个单词进行处理
                // 判断单词是否已经在HashMap中
                if (wordCntMap.containsKey(word)) {
                    // 如果在，则取出value然后进行+1
                    Integer value = wordCntMap.get(word);
                    wordCntMap.put(word, value + 1);
                } else {
                    // 如果不存在 则以word作为key，1作为value，进行初始化
                    wordCntMap.put(word, 1);
                }

            }
        }

        // 打印
        for (Map.Entry<String, Integer> kv : wordCntMap.entrySet()) {
            System.out.println(kv.getKey() + "," + kv.getValue());
        }

        // 关闭文件
        br.close();
    }
}
